Я уже говорил, что элемент ActiveX Crystal Report Control можно использовать в любой среде программирования, поддерживающей COM.
Создадим в среде Visual C++ новый Dialog based проект. Назовем его Reporter . На главной форме приложения разместим кнопку, при нажатии на которую у нас будет выводиться отчет, и создадим для нее обработчик.
Теперь необходимо к проекту подключить контрол Crystal Report . Идем в меню Project->Add To Project->Components and Controls . В открывшемся диалоговом окне открываем папку Registered ActiveX Controls .

После нажатия кнопки Insert элемент появится на панели инструментов. Поместим его на форму. (Поскольку ActiveX Crystal Reports Control невидим в runtime, его можно расположить где угодно.)

Теперь для нашего контрола необходимо назначить объектную переменную. Один из способов: выполнить двойной щелчок на контроле, удерживая нажатой клавишу Ctrl . В появившемся диалоговом окне введите имя этой переменной.

Кроме того, можно установить свойства контрола. Для этого необходимо щелкнуть правой кнопкой мыши и в контекстном меню выбрать пункт Properties .

Окно свойств практически полностью повторяет окно свойств, открывающееся в Visual Basic (см Шаг 49 - Элемент ActiveX Crystal Report Control. Страница свойств.).
Теперь остается только написать код обработчика нажатия кнопки. Здесь имеется одна тонкость: среди членов, доступных в C++ практически нет свойств. Свойства устанавливаются через соответствующие методы, а значения свойств используются как их аргументы

Все, готово! Запускаем проект. После нажатия на кнопку будет выведен отчет:

Открывшееся окно с отчетом обладает достаточно высокой функциональностью: можно осуществлять навигацию по отчету, его масштабирование, и самое главное, печать.